package Lambda表达式;
/*
* 案例需求：在控制台输出一句话：多线程程序启动了
* 实现方式一
*  实现步骤
*  定义一个类MyRunnable实现Runnable接口，重写run()方法
*  创建MyRunnable类的对象
*  创建Thread类的对象，把MyRunnable的对象作为构造参数传递
*  启动线程
*
* 实现方式二
*  匿名内部类的方式改进
*
* 实现方式三
*  Lambda表达式的方式改进
* */

/*
* 方式1的线程类
* */
class MyRunnable implements Runnable{
    @Override
    public void run() {
        System.out.println("多线程程序启动了");
    }
}
public class 体验Lambda表达式 {
    public static void main(String[] args) {
        /*方式1*/
//        MyRunnable my = new MyRunnable();
//        Thread t = new Thread(my);
//        t.start();

        /*方式2*/
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                System.out.println("多线程程序启动了");
//            }
//        }).start();

        /*方式3*/
        new Thread(()->{
            System.out.println("多线程的程序启动了");
        }).start();
    }
}
/*
* 函数式编程思想概述
* 函数式编程思想：尽量忽略面向对象的复杂语法："强调做什么，而不是以什么形式去做"
* 而我们要学习的lambda表达式就是函数式思想的体现
* */





















